home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_S / S_899 / ALICE / ALICE09.TXT < prev   
Text File  |  1998-03-14  |  15KB  |  378 lines

  1.  
  2.                       ALICE
  3.                 All-Iconify-Enabler
  4.              
  5.              Version 0.9ß 03.03.1996
  6.  
  7.  
  8.                 von Sven Kopacz
  9.  
  10.  
  11. 1. Rechtliches
  12.  
  13.  Die Sprüche kennen Sie zwar alle schon, aber lesen Sie sie trotzdem:
  14.  
  15.  Alice ist Freeware, d.h. jeder darf es kostenlos benutzen und 
  16.  kostenlos weitergeben, ebenso darf Alice kostenlos eigenen Programmen 
  17.  beigelegt werden.
  18.  Allerdings darf eine Weitergabe/Beilage NUR VOLLSTÄNDIG erfolgen, 
  19.  d.h. dieser Text muß dabei sein!
  20.  Uploads in Mailboxen, die keine Download-Gebühren verlangen (z.B. die 
  21.  Maus-Mailboxen) sind ebenfalls erlaubt.
  22.  (Eigentlich ist alles, was hier erlaubt ist, nicht nur erlaubt 
  23.  sondern ausdrücklich erwünscht:-)
  24.  
  25.  Jede Form der Weitergabe, bei der dem Empfänger Kosten für Alice 
  26.  entstehen ist VERBOTEN.
  27.  
  28.  
  29. 2. Wat it denn dat, wat it denn dat??
  30.  
  31.  Alice ist ein TSR ("Terminate and stay resident"), d.h. in diesem 
  32.  Fall eine Systemerweiterung für den AUTO-Ordner. Ist Alice 
  33.  installiert, beherrschen alle Applikationen das Iconify. 
  34.  Voraussetzung dafür ist ein Betriebssystem, das eben dieses Iconify 
  35.  unterstützt. Z.Zt. sind das meines Wissens:
  36.  -MagiC >= V3.0
  37.  -MagiCMaC >= 1.2.4
  38.  -MultiTOS-Beta
  39.  -Geneva
  40.  -N.AES
  41.  
  42.  ACHTUNG! Diese Version 0.9ß von Alice läuft NICHT unter MTOS und 
  43.  Geneva (jedenfalls nicht der ersten öffentlichen Demo), bei N.AES 
  44.  weiß ich es nicht (wer's probiert, kann mir gerne schreiben, Adresse 
  45.  s.u.).
  46.  Eine Anpassung ist geplant, momentan hab ich aber nicht gerade riesig 
  47.  Zeit dafür und weiß auch garnicht, ob da überhaupt Bedarf besteht. 
  48.  Wer also Alice unter anderen Systemen als MagiC/MagiCMaC einsetzen 
  49.  will, soll sich bitte bei mir melden.
  50.  
  51.  
  52. 3. Installation und Konfiguration
  53.  
  54.  Kopieren Sie Alice in den AUTO-Ordner, die Position ist egal. Um 
  55.  Alice zu konfigurieren benötigen Sie die GEM-Version (!) von SETTER. 
  56.  SETTER ist ursprünglich ein TTP-Programm von Harun Scheutzow, um 
  57.  verschiedene Programme zu konfigurieren. Markus Kohm hat eine 
  58.  GEM-Version dieses Programms verfaßt, die außerdem neue Möglichkeiten 
  59.  zur Konfiguration bietet. Diese erweiterten Möglichkeiten werden von 
  60.  Alice genutzt, weshalb Sie eben die GEM-Version von SETTER benötigen.
  61.  Diese Version liegt dem Alice-Archiv bei.
  62.  
  63.  Ziehen Sie nun einfach das in den AUTO-Ordner kopierte ALICE.PRG auf 
  64.  SETTER.PRG. SETTER wird gestartet und präsentiert Ihnen in einem 
  65.  Fenster alle Optionen von Alice. Ich hoffe mal, daß die alle 
  66.  selbsterklärend sind. Falls es Probleme gibt, schreiben Sie mir, 
  67.  damit ich in zukünftigen Versionen die Texte entsprechend verbessern 
  68.  kann.
  69.  
  70.  Haben Sie alles Ihren Wünschen entsprechend eingestellt, starten Sie 
  71.  Ihren Rechner neu, damit sich Alice installieren kann.
  72.  
  73.  Achja, wenn Sie mal die Anleitung zu SETTER lesen, werden Sie 
  74.  feststellen, daß Sie Ihre Einstellungen in Alice NICHT bei jedem 
  75.  Update neu tätigen müssen...
  76.  
  77.  
  78. 4. Benutzung
  79.  
  80.  Da gibts eigentlich nicht viel zu sagen, das Iconify kennen Sie ja 
  81.  wahrscheinlich aus Programmen wie Thing, CAT, ConNect u.v.a. Ältere 
  82.  Programme bieten normalerweise kein Iconify, weshalb sich dieses 
  83.  OS-Feature IMO schlecht nutzen läßt (es ist schwierig, von etwas zu 
  84.  profitieren, was man nur ab und zu haben kann). Mit Alice können Sie 
  85.  nun in allen Programmen die Iconify-Option benutzen, wobei Alice die 
  86.  komplette Verwaltung der Iconify-Fenster für nicht Iconify-fähige 
  87.  Applikationen übernimmt.
  88.  
  89.  Falls Sie es noch nicht wissen: Das Fensterelement oben rechts mit 
  90.  dem kleinen Dreieck ist der "Iconifier" oder "Smaller". Ein Klick 
  91.  darauf bewirkt, daß das Fenster verkleinert ("ikonisiert") wird und 
  92.  der komplette Inhalt durch ein Icon ersetzt wird. Halten Sie beim 
  93.  Klick auf den Iconifier zusätzlich die Control-Taste gedrückt, werden 
  94.  alle Fenster der zugehörigen Applikation in ein einziges 
  95.  Iconify-Fenster "verwandelt", das ist das sog. "All-Iconify".
  96.  Ein Doppelklick auf ein ikonisiertes Fenster bewirkt ein "Uniconify", 
  97.  d.h. der ursprüngliche Zustand wird wieder hergestellt.
  98.  
  99.  Auf Fenster, die durch Alice ikonisiert wurden, können Sie außerdem 
  100.  andere Objekte ziehen ("Drag and Drop"), sofern die beteiligten 
  101.  Applikationen das VA-Protokoll unterstützen. Das betreffende Programm 
  102.  verhält sich dann, als hätten Sie das Objekt auf das Icon des 
  103.  Desktops gezerrt.
  104.  (Für Programmierer: VA_DRAGACCWIND wird in VA_START umgewandelt).
  105.  
  106.  Ist ein von Alice ikonisiertes Fenster das oberste Fenster, dann 
  107.  werden Tastendrücke ignoriert (das wäre sonst zu gefährlich).
  108.  
  109.  
  110. 5. Icons
  111.  
  112.  Natürlich kann Alice nicht wissen, welchen tatsächlichen Inhalt ein 
  113.  Fenster hat (z.B. einen Text oder eine Grafik), deshalb werden Sie in 
  114.  den von Alice ikonisierten Fenstern normalerweise nur eines von vier 
  115.  Standard-Icons vorfinden:
  116.  -Haben Sie ein einzelnes Fenster einer Applikation ikonisiert, 
  117.   erscheint ein Fenster-Icon
  118.  -Haben Sie ein einzelnes Fenster eines Accessories ikonisiert, 
  119.   erscheint ein Fenster-Icon mit aufgeklapptem Accessory-Menü.
  120.  -Haben Sie ein "All-Iconify" bei einer Applikation ausgelöst, 
  121.   erscheint das Programm-Icon des Original-TOS-Desktops.
  122.  -Haben Sie ein "All-Iconify" bei einem Accessory ausgelöst, erscheint 
  123.   das Programm-Icon des Original-TOS-Desktops mit aufgeklapptem 
  124.   Accessory-Menü.
  125.  
  126.  Der Fenstertitel bleibt dabei jeweils erhalten und unter dem Icon 
  127.  erscheint der Name des Programms, zu dem das ikonisierte Fenster 
  128.  gehört.
  129.  
  130.  
  131. 6. Mehr Icons?
  132.  
  133.  Da schlappe vier Icons etwas fade sind, wurde in Alice eine 
  134.  Schnittstelle integriert, die in Zusammenarbeit mit Arno Welzel 
  135.  entstanden ist. Über diese Schnittstelle haben externe Programme die 
  136.  Möglichkeit, den Inhalt der ikonisierten Fenster zu zeichnen und 
  137.  somit für mehr Abwechslung und Information zu sorgen. Für Rainer User 
  138.  bedeutet das, daß er bei Verwendung des alternativen Desktops Thing 
  139.  (von Arno Welzel) ab Version 1.0 in den ikonisierten Fenstern ganz 
  140.  automatisch die Icons vorfindet, die er auch im Desktop für die 
  141.  jeweiligen Programme angemeldet hat. Na wenn das nichts ist:-)
  142.  
  143.  Wenn Sie einen anderen Desktop benutzen, dann können Sie versuchen, 
  144.  den Autor dieses Desktops zum Einbau der Schnittstelle zu überreden. 
  145.  Den passenden Ansprechpartner finden Sie i.d.R. im Info-Dialog oder 
  146.  in der Anleitung zu Ihrem Desktop.
  147.  
  148.  Programmierer können sich auch einen eigenen Redraw-Server schreiben 
  149.  (Puristen möchten vielleicht nur den App-Namen in den Fenstern haben, 
  150.  Multimedia-Anhänger dagegen ganze MPEG-Filmchen abspielen lassen;-), 
  151.  mehr dazu im Kapitel "Für Programmierer".
  152.  
  153.  
  154. 7. V0.9ß
  155.  
  156.  Diese Version trägt nicht umsonst die Bezeichnung "Beta". Alice wurde 
  157.  zwar ausgiebig getestet, dabei trat aber bei einem Tester ein Problem 
  158.  mit CAT auf, bei dem das Uniconify nicht richtig klappt (das Fenster 
  159.  bleibt klein und der Inhalt wird erst beim nächsten Redraw geändert). 
  160.  Wenn Ihnen mit CAT oder mit anderen Programmen ähnliches passiert, 
  161.  dann teilen Sie mir das bitte mit, vor allem wenn Sie es schaffen, 
  162.  das ganze irgendwie gezielt zu reproduzieren. Im Moment bin ich 
  163.  nämlich ziemlich ratlos, woran das liegen könnte, vor allem weil es 
  164.  bei mir nicht auftritt...
  165.  
  166.  Außerdem läuft Alice noch nicht auf allen Systemen. Daher also das 
  167.  "Beta".
  168.  
  169.  Irgendwelche anderen Fehlermeldungen i.Z. mit Alice werden natürlich 
  170.  ebenfalls jederzeit (mehr oder weniger dankend;-) von mir 
  171.  entgegengenommen.
  172.  
  173.  
  174. 8. Für Programmierer
  175.  
  176.  ...stellen sich jetzt vielleicht folgende Fragen:
  177.  
  178.  -Soll ich in meine Programme Iconify-Unterstützung einbauen?
  179.  
  180.   Das muß natürlich jeder selber wissen. Tatsache ist, daß Alice 
  181.   weiterentwickelt wird und eine Unterstützung aller Iconify-fähigen 
  182.   Betriebssysteme vorgesehen ist, prinzipiell kann man es sich also 
  183.   sparen, in eigenen Programmen Speicher für Iconify-Unterstützung zu 
  184.   opfern. Andererseits will man vielleicht in Sonderfällen 
  185.   spezielle Fenster auf keinen Fall ikonisiert bekommen o.ä., dann ist 
  186.   eine eigene Unterstützung notwendig.
  187.   Hinweis: Applikationsmodale Fensterdialoge sind kein Problem, 
  188.   solange man auf die Nachricht WM_NEWTOPPED/WM_ONTOP für ein anderes 
  189.   Fensterhandle mit dem Toppen des Dialogfensters reagiert.
  190.   
  191.   Bevor Sie Iconify allerdings nur halblebig einbauen (das ALL_ICONIFY 
  192.   wird offenbar gerne gemieden), lassen Sie es lieber ganz bleiben 
  193.   oder bieten Sie zumindest eine optionale Abschaltung dafür an.
  194.   
  195.  
  196.  -Was muß ich tun, damit Alice meine Programme auf jeden Fall in Ruhe 
  197.   läßt?
  198.  
  199.   Einfach beim Programmstart ein Fenster mit Iconifier per wind_create 
  200.   erzeugen (und falls es nicht gleich benötigt wird, danach eben wieder
  201.   löschen).
  202.   Wann das genau passiert ist unwichtig, wichtig ist nur, daß das 
  203.   erste mit wind_create erzeugte Fenster einen Iconifier besitzt. Wenn 
  204.   das in Ihrem Programm sowieso der Fall ist, können Sie alles so 
  205.   lassen wie es ist. 
  206.   
  207.  
  208.  -Was muß ich tun, damit Alice meine Programme unterstützt.
  209.  
  210.   Nix. Was man aber nicht machen sollte, ist ein wind_create mit 
  211.   angemeldetem Iconifier. Dann nämlich geht Alice davon aus, daß Ihre 
  212.   App das Iconify selber kann und hält sich raus (außer bei der 
  213.   Vergabe der Koordinaten für das ikonisierte Fenster).
  214.  
  215.  
  216.  -Wie verhalten sich von Alice ikonisierte Fenster für mein Programm?
  217.  
  218.   Für das Programm erscheinen diese Fenster, als würden sie sich nach 
  219.   wie vor an der alten Position befinden, jedoch von einem anderen 
  220.   Fenster vollständig verdeckt (d.h. der Redrawbereich hat die 
  221.   Breite/Höhe 0).
  222.   Führt das Programm ein wind_set(WF_TOP) auf ein von Alice 
  223.   ikonisiertes Fenster aus, so führt dies automatisch zu einem 
  224.   Uniconify. Befindet sich das Fenster "versteckt" in einem 
  225.   All-Iconify-Fenster, so wird es aus diesem Fenster "gelöst".
  226.   
  227.   Da das Programm nix vom Iconify mitbekommt, ist es kein Problem, 
  228.   beim Beenden die Fensterkoordinaten zu speichern. Auch wenn alle 
  229.   Fenster ikonisiert oder womöglich in einem All-Iconify-Fenster 
  230.   "versteckt" (und damit geschlossen) sind.
  231.   
  232.  
  233.  -Sonst noch was?
  234.   
  235.   Ja. Wenn Alice das Iconify übernimmt, übernimmt es auch diverse 
  236.   Nachrichten, den Redraw etc...In diesem Fall kann es vorkommen, daß 
  237.   ein event_message oder _multi von der Applikation nicht mehr 
  238.   bearbeitet werden soll. Alice ändert einen solchen Event daher in 
  239.   einen Message-Event mit der Nachrichtennummer 0x998 (MSG_NOEVENT). Die 
  240.   Applikation muß dann nichts weiter machen, als diese Nachricht 
  241.   einfach zu ignorieren (was normalerweise dadurch geschieht, daß man 
  242.   seine Programme einfach so läßt, wie sie sind;-)
  243.   
  244.   
  245.  
  246.  8.1 Die Schnittstelle für den Redraw-Server:
  247.  
  248.  Wie bereits erwähnt, kann ein anderes Programm den Inhalt der 
  249.  ikonisierten Fenster zeichnen. Dieses Programm übernimmt damit die 
  250.  Rolle des Redraw-Servers. Dazu muß sich der Server zunächst bei Alice 
  251.  anmelden:
  252.  
  253.  1) Der Server sucht den Cookie mit Kennung "ALIC" (wird von Alice 
  254.     angelegt)
  255.     
  256.  2) Der Cookie enthält als Wert einen Zeiger auf folgende Struktur:
  257.  
  258.     typedef struct 
  259.     { 
  260.      long magic;   /* Magic - muss 'ALIC' sein */ 
  261.      long version; /* Versionsnummer von Alice */ 
  262.      int redraw_ap_id;  /* -1 */ 
  263.     } ALICE_COOKIE; 
  264.  
  265.    "version" ist die Versionsnummer+Datum in BCD-Schreibweise. Die 
  266.    Version 0.9 vom 17.01.1996 ist also am Eintrag "09170196" zu 
  267.    erkennen.
  268.   
  269.    Nun prüft der Server, ob in "redraw_ap_id" der Wert -1 eingetragen 
  270.    ist. Ist dies nicht der Fall, hat sich bereits ein anderer Server 
  271.    angemeldet->Pech.
  272.    Ansonsten trägt der Server nun in "redraw_ap_id" seine eigene ap_id 
  273.    (aus appl_init()) ein.
  274.   
  275. 3) Wenn Alice nun ein Fenster ikonifiziert, schickt es an den Server 
  276.    folgende Message:
  277.   
  278.    msg[0]=THING_CMD (0x46ff) 
  279.    msg[1]=<ap_id des Fenstereigners> 
  280.    msg[2]=0; 
  281.    msg[3]=AT_WINICONIFY (0x1000) 
  282.    msg[4/5]=<Zeiger auf Programmnamen ohne Pfad aber mit Extension> 
  283.    msg[6]=<Fenster-Handle> 
  284.    msg[7]=reserviert, immer 0 
  285.   
  286.    Als Extension gilt: 
  287.    ".APP" oder ".PRG" = GEM-Programm 
  288.    ".ACC" = Accessory 
  289.   
  290.    Der Server hat somit die Möglichkeit, intern einen Objektbaum für 
  291.    den Fensterinhalt aufzubauen.
  292.  
  293. 4) Sobald ein Redraw für <Fenster-Handle> notwendig ist, schickt Alice 
  294.    eine WM_REDRAW-Message im üblichen Format an den Server. 
  295.  
  296. 5) Wenn das Fenster geschlossen oder wieder auf normale Größe 
  297.    (uniconify) gebracht wird, schickt Alice an den Server folgende 
  298.    Message:
  299.   
  300.    msg[0]=THING_CMD (0x46ff) 
  301.    msg[1]=<ap_id des Fenstereigners> 
  302.    msg[2]=0 
  303.    msg[3]=AT_WINUNICONIFY (0x1001) 
  304.    msg[4]=<Fenster-Handle> 
  305.    msg[5-7]=reserviert, immer 0 
  306.   
  307.    Der Server kann nun den Speicher für den evtl. erzeugten 
  308.    Objektbaum wieder frei geben.
  309.  
  310.    Läßt sich der Fensterinhalt schnell aufbauen (z.B. einfacher Text), 
  311.    dann kann 3) und 5) einfach ignoriert werden und der Inhalt 
  312.    "on the fly" beim Eintreffen einer Redraw-Message erzeugt werden. 
  313.       
  314. 6) Sollte der Server sich unerwartet beenden, schreibt er in den 
  315.    Alice-Cookie in 'redraw_ap_id' wieder den Wert -1, damit Alice 
  316.    weiss, daß der Server nicht mehr aktiv ist.
  317.  
  318. 7) Der Server muß, falls er selbst Fenster benutzt, sein Iconify 
  319.    selber machen, weil alle seine wind_get-Anfragen von Alice 
  320.    durchgelassen werden, es also große Probleme mit den von Alice 
  321.    ikonisierten Fenstern gäbe. Alice meldet in den Serverfenstern auch 
  322.    keine Iconifier an (auch nicht, wenn in der Konfiguration 'Iconify 
  323.    für alle Apps übernehmen' gewählt wurde).
  324.  
  325.  
  326. 9. Kontakt
  327.  
  328.  Ich selbst bin per eMail im Mausnet unter
  329.  
  330.  Sven Kopacz @ LB
  331.  
  332.  zu erreichen. In der Maus LB ist auch immer die neuste Version von 
  333.  Alice zu finden.
  334.  
  335.  LB  MAUS  Ludwigsburg
  336.  07141-280479
  337.  Gastdownload, nicht von 18-20 und 21-23 (Zahler)
  338.  Netz, nicht anrufen: 21.10-21.45 und 2.50- 5.30
  339.  
  340.  Per Post geht's auch:
  341.  
  342.  Sven Kopacz
  343.  Metzinger Str. 20
  344.  70597 Stuttgart
  345.  
  346.  Wer eine Antwort per Post wünscht, legt einen adressierten & 
  347.  frankierten Rückumschlag bei, für die neuste Alice-Version zusätzlich 
  348.  eine Diskette (DD oder HD).
  349.  
  350.  Für die netten Leute mit den Spendierhosen hier noch meine 
  351.  Bankverbindung:
  352.  
  353.    Kto.-Nr. 3213502
  354.    BLZ 600 501 01  Landesgirokasse Stuttgart
  355.  
  356.  
  357.  
  358.  SETTER (GEM-Version) ist von Markus Kohm (Markus Kohm @ KA2)
  359.  
  360.  THING ist von Arno Welzel (aw@zaphot.augusta.de oder Arno Welzel @ A) 
  361.  
  362.  
  363.  Ein Dankeschön geht außerdem an alle Tester: 
  364.  
  365.  Christoph Bartholme
  366.  Oliver Buchmann
  367.  Andreas Frank
  368.  Ulli Hahndorf
  369.  Raymund Hemmerling
  370.  Andrew Lee
  371.  Frank Müller
  372.  Richard Quadt
  373.  Uwe Seidler
  374.  Holger Weets
  375.  Arno Welzel
  376.  Rainer Wiesenfeller
  377.  
  378.  -Ende-